Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Програмування співпроцесора з використанням команд обчислення трансцендентних функцій та реалізація розгалужень при порівнянні даних дійсного типу

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
КН
Кафедра:
ЕОМ

Інформація про роботу

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Системне програмування та операційні системи
Варіант:
11

Частина тексту файла

Лабораторна робота №4 Тема: Програмування співпроцесора з використанням команд обчислення трансцендентних функцій та реалізація розгалужень при порівнянні даних дійсного типу Мета: Познайомитися з принципами роботи математичного співпроцесора та оволодіти навиками використання вбудованих елементарних математичних функцій та реалізації розгалужень. ВАРІАНТИ ЗАВДАНЬ  Лістинг програми: //Модуль С #include <stdio.h> #include <math.h> extern "C" float calculation(float ,float ,float),res; void main(void) { float A; float C1; float D; double res=0; printf("if (C>D) X=(atan(12/C)+73)/(A*A-1) else X=(2*C/A-D*D)/(D+tan(A-1)) \n"); printf("A = "); scanf("%f",&A); printf("C = "); scanf("%f",&C1); printf("D = "); scanf("%f",&D); if (C1>D) printf("REsult is C: %f \n", (atan(12/C1)+73)/(A*A-1)); else printf("REsult is C: %f \n", (2*C1/A-D*D)/(D+tan(A-1))); printf("REsult is ASM: %f \n", calculation(A,C1,D)); } ;Модуль ASM .586 .model flat,c PUBLIC calculation ;if (C>D) X=(atan(12/C)+73)/(A*A-1) else X=(2*C/A-D*D)/(D+tan(A-1)) .data K12 dd 12.0 K73 dd 73.0 k1 dd 1.0 K2 dd 2.0 .code calculation proc push ebp mov ebp,esp finit fld dword ptr[ebp+8];в вершину стеку співпроцесора записати [ebp+8] fcomp dword ptr[ebp+16] ;порівняти fstsw ax sahf jbe els1 ;якщо C<=D fld K12 ;в вершину стеку співпроцесора записати к12 fdiv dword ptr[ebp+8] ; поділити на [ebp+8] FPATAN ; арктангенс fadd K73 ;додати к73 fld dword ptr[ebp+12]; в вершину стеку співпроцесора записати [ebp+12] fmul dword ptr[ebp+12];помножити на [ebp+12] fsub K1;відняти к1 fdiv jmp rez els1: fld K2; в вершину стеку співпроцесора записати к2 fmul dword ptr[ebp+8]; помножити на [ebp+8] fdiv dword ptr[ebp+12];поділити fld dword ptr[ebp+16]; в вершину стеку співпроцесора записати [ebp+16] fmul dword ptr[ebp+16] ;помножити fsub fld dword ptr[ebp+12] в вершину стеку співпроцесора записати [ebp+12] fsub K1 ;відняти к1 FPTAN ;тангунс fdiv fadd dword ptr[ebp+16];додати [ebp+16] fdiv rez: pop ebp ret calculation endp end Висновок і результат роботи програми:   Висновок: познайомився з принципами роботи математичного співпроцесора і використав його можливості для обчислення арифметичних виразів.
Антиботан аватар за замовчуванням

05.03.2015 22:03

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини